#ifndef __MAIN_H
#define __MAIN_H

#define COMMANDUSAGE \
    "用法: %s [子命令] [选项1 [参数]] [选项2 [参数]]...\n\n" \
    "可用的子命令:\n" \
    "   [pack]\t将文件或目录打包为 ANYF 文件。\n" \
    "   [fake]\t将文件或目录打包并伪装为 JPEG 文件。\n" \
    "   [extr]\t从 ANYF 文件或伪装的 JPEG 文件中提取目录或文件。\n" \
    "   [info]\t显示 ANYF 文件信息及其子文件列表。\n" \
    "   [help]\t显示此帮助信息。\n" \
    "   [vers]\t显示程序版本信息及其他信息。\n\n" \
\
    "各个子命令的可用选项:\n" \
    "   [info]命令可用选项:\n" \
    "       [-f] 文件路径\t此选项指定要从中读取并显示子文件或目录列表及其他信息的 ANYF 文件的路径。\n\n" \
\
    "   [pack]命令可用选项:\n" \
    "       [-f] 文件路径\t此选项指定即将被创建或被追加的 ANYF 文件路径。路径应包括文件名和扩展名，扩展名虽不影响打包和解包，但建议以<.af>作为扩展名以便辨认。\n" \
    "       [-t] 路径\t此选项指定即将被打包的目标，该目标将被打包到[-f]选项指定的 ANYF 文件中。此选项可以指定文件或目录路径。\n" \
    "       [-r]\t\t使用此选项表示在[-t]选项指定的是一个目录路径的情况下层层深入搜索该目录内的所有子目录和文件，如果[-t]选项指定的是一个文件路径则此选项不生效。不使用此选项则只收集[-t]所指目录的一代子目录和文件。\n" \
    "       [-a]\t\t使用此选项表示指定打包模式为\"追加打包\"。如果[-f]选项指定的 ANYF 文件已存在且使用了此选项，则把要打包的目标追加打包到已存在的 ANYF 文件中，不使用此选项则根据是否使用了[-o]选项决定是否覆盖同名文件或退出程序，[-f]选项指定的 ANYF 文件不存在则此选项不生效。\n" \
    "       [-o]\t\t此选项请慎用！！！使用此选项表示在[-f]选项指定的 AMYF 文件已存在的情况下，允许以\"覆盖\"的方式创建新文件。如果[-f]选项指定的 AMYF 文件已存在且同时使用了此选项和[-a]选项，则只有[-a]选项生效。\n\n"\
\
    "   [fake]命令可用选项:\n" \
    "       [-f] 文件路径\t此选项指定即将被创建或被追加的 ANYF 文件路径。路径应包括文件名和扩展名，扩展名虽不影响打包和解包，但建议以<.jpg>或<.jpeg>作为扩展名，这样创建的 ANYF 文件看起来就是正常可用的 JPEG 文件。\n" \
    "       [-j] 文件路径\t此选项指定一个 JPEG 文件路径，该 JPEG 文件将作为[-f]选项指定的 ANYF 文件的伪装模板。此路径的 JPEG 文件只会被读取不会被修改。此路径指定的文件必须是真正的 JPEG 文件，把其他格式图片的扩展名改为<.jpg>或<.jpeg>是无效的。\n" \
    "       [-t] 路径\t此选项指定即将被打包的目标，该目标将被打包到[-f]选项指定的 ANYF 文件中。此选项可以指定文件或目录路径。\n" \
    "       [-r]\t\t使用此选项表示在[-t]选项指定的是一个目录路径的情况下层层深入搜索该目录内的所有子目录和文件，如果[-t]选项指定的是一个文件路径则此选项不生效。不使用此选项则只收集[-t]所指目录的一代子目录和文件。\n" \
    "       [-a]\t\t使用此选项表示指定打包模式为\"追加打包\"。如果[-f]选项指定的 ANYF 文件已存在且使用了此选项，则把要打包的目标追加打包到已存在的 ANYF 文件中，不使用此选项则根据是否使用了[-o]选项决定是否覆盖同名文件或退出程序，[-f]选项指定的 ANYF 文件不存在则此选项不生效。\n" \
    "       [-o]\t\t此选项请慎用！！！使用此选项表示在[-f]选项指定的 AMYF 文件已存在的情况下，允许以\"覆盖\"的方式创建新文件。如果[-f]选项指定的 AMYF 文件已存在且同时使用了此选项和[-a]选项，则只有[-a]选项生效。\n\n"\
\
    "   [extr]命令可用选项:\n" \
    "       [-f] 文件路径\t此选项指定要解包的 ANYF 文件的路径，程序将从此路径指示的 ANYF 文件中提取子文件或目录。\n" \
    "       [-t] 目录路径\t此选项指定提取 ANYF 文件中的子文件时的保存目的地路径，忽略此选项则将提取的内容保存到当前目录。\n" \
    "       [-n] 文件名\t此选项指定想要从[-f]选项指定的 ANYF 文件中提取的子文件或目录的名称。注意，此选项的<文件名>指的是使用 info 命令列出的子文件名，包括文件名的路径前缀。不使用此选项则提取全部子文件。\n" \
    "       [-o]\t\t此选项请慎用！！！使用此选项表示从 ANYF 文件提取子文件时允许直接覆盖[-t]选项指定的目录中的同路径同名子文件，不使用此选项则表示跳过该子文件的提取。\n\n"

#endif // __MAIN_H
